import { Slots } from "vue";
import { isFunction } from "@/utils/is";

export const getSlot = (slots: Slots, slot = "default", data?: Recordable) => {
    // Reflect.has 判断一个对象是否存在某个属性
    if (!slots || !Reflect.has(slots, slot)) {
        return null;
    }
    if (!isFunction(slots[slot])) {
        console.error(`${slot} is not a function!`);
        return null;
    }
    const slotFn = slots[slot];
    if (!slotFn) return null;
    return slotFn(data);
};
